Prevent an infinite loop when G_FILENAME_ENCODING is invalid. (#309280,
authorMatthias Clasen <mclasen@redhat.com>
Fri, 1 Jul 2005 15:51:30 +0000 (15:51 +0000)
committerMatthias Clasen <matthiasc@src.gnome.org>
Fri, 1 Jul 2005 15:51:30 +0000 (15:51 +0000)
2005-07-01  Matthias Clasen  <mclasen@redhat.com>

* gtk/gtkfilesel.c (cmpl_init_state): Prevent an infinite
loop when G_FILENAME_ENCODING is invalid.  (#309280, Padraig Brady)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-8
gtk/gtkfilesel.c

index a60d5f71704ca4917ed225d0c26d52db7ce737b5..cb3eba2c3608a6c7d808a2a06b66750c0500b776 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2005-07-01  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkfilesel.c (cmpl_init_state): Prevent an infinite
+       loop when G_FILENAME_ENCODING is invalid.  (#309280, Padraig Brady)
+
 Thu Jun 30 14:17:24 2005  Manish Singh  <yosh@gimp.org>
 
        * gdk/x11/gdkprivate-x11.h: declare _gdk_xgrab_check_button_event.
index a60d5f71704ca4917ed225d0c26d52db7ce737b5..cb3eba2c3608a6c7d808a2a06b66750c0500b776 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-01  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkfilesel.c (cmpl_init_state): Prevent an infinite
+       loop when G_FILENAME_ENCODING is invalid.  (#309280, Padraig Brady)
+
 Thu Jun 30 14:17:24 2005  Manish Singh  <yosh@gimp.org>
 
        * gdk/x11/gdkprivate-x11.h: declare _gdk_xgrab_check_button_event.
index a60d5f71704ca4917ed225d0c26d52db7ce737b5..cb3eba2c3608a6c7d808a2a06b66750c0500b776 100644 (file)
@@ -1,3 +1,8 @@
+2005-07-01  Matthias Clasen  <mclasen@redhat.com>
+
+       * gtk/gtkfilesel.c (cmpl_init_state): Prevent an infinite
+       loop when G_FILENAME_ENCODING is invalid.  (#309280, Padraig Brady)
+
 Thu Jun 30 14:17:24 2005  Manish Singh  <yosh@gimp.org>
 
        * gdk/x11/gdkprivate-x11.h: declare _gdk_xgrab_check_button_event.
index fd13b1f57c9cb9137148afb65456c5a30b61a0ca..f82e81f9147a17d2451cddbd195fc1766f3c6c15 100644 (file)
@@ -2671,13 +2671,14 @@ cmpl_init_state (void)
 {
   gchar *utf8_cwd;
   CompletionState *new_state;
+  gint tries = 0;
 
   new_state = g_new (CompletionState, 1);
 
   utf8_cwd = get_current_dir_utf8 ();
 
 tryagain:
-
+  tries++;
   new_state->reference_dir = NULL;
   new_state->completion_dir = NULL;
   new_state->active_completion_dir = NULL;
@@ -2697,7 +2698,8 @@ tryagain:
     {
       /* Directories changing from underneath us, grumble */
       strcpy (utf8_cwd, G_DIR_SEPARATOR_S);
-      goto tryagain;
+      if (tries < 2)
+       goto tryagain;
     }
 
   g_free (utf8_cwd);